The present invention relates to the field of data storage. More particularly, the present invention relates to state machines for performing data redundancy techniques.
Remote mirroring is a data redundancy technique for coping with storage system failures. A copy of data, sometimes referred to as a ‘primary’ or ‘local’ copy, is updated, for example, as it is accessed by an application program. A redundant copy of the data, sometimes referred to as a ‘secondary’ or ‘slave’ copy of the data, usually at a remote site, is updated as well. When a failure occurs that renders the primary copy unusable or inaccessible, the data can be restored from the secondary copy, or accessed directly from there.
Conventional techniques for remote mirroring tend to maintain the primary and secondary copies of the data synchronized. However, such techniques do not cope well with unexpected circumstances such as lengthy communication delays to the remote site, buffers filled to capacity, failures, and so forth.
Therefore, what is needed is an improved technique for redundant data storage. It is to this end that the present invention is directed.